{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"actions\", \"autoFocus\", \"autoFocusItem\", \"children\", \"className\", \"disabledItemsFocusable\", \"disableListWrap\", \"onKeyDown\", \"variant\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport ownerDocument from '../utils/ownerDocument';\nimport List from '../List';\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport useForkRef from '../utils/useForkRef';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction nextItem(list, item, disableListWrap) {\n  if (list === item) {\n    return list.firstChild;\n  }\n  if (item && item.nextElementSibling) {\n    return item.nextElementSibling;\n  }\n  return disableListWrap ? null : list.firstChild;\n}\nfunction previousItem(list, item, disableListWrap) {\n  if (list === item) {\n    return disableListWrap ? list.firstChild : list.lastChild;\n  }\n  if (item && item.previousElementSibling) {\n    return item.previousElementSibling;\n  }\n  return disableListWrap ? null : list.lastChild;\n}\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n  if (textCriteria === undefined) {\n    return true;\n  }\n  let text = nextFocus.innerText;\n  if (text === undefined) {\n    // jsdom doesn't support innerText\n    text = nextFocus.textContent;\n  }\n  text = text.trim().toLowerCase();\n  if (text.length === 0) {\n    return false;\n  }\n  if (textCriteria.repeating) {\n    return text[0] === textCriteria.keys[0];\n  }\n  return text.indexOf(textCriteria.keys.join('')) === 0;\n}\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n  let wrappedOnce = false;\n  let nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n  while (nextFocus) {\n    // Prevent infinite loop.\n    if (nextFocus === list.firstChild) {\n      if (wrappedOnce) {\n        return false;\n      }\n      wrappedOnce = true;\n    }\n\n    // Same logic as useAutocomplete.js\n    const nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n    if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n      // Move to the next element.\n      nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n    } else {\n      nextFocus.focus();\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * A permanently displayed menu following https://www.w3.org/WAI/ARIA/apg/patterns/menubutton/.\n * It's exposed to help customization of the [`Menu`](/material-ui/api/menu/) component if you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\nconst MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n  const {\n      // private\n      // eslint-disable-next-line react/prop-types\n      actions,\n      autoFocus = false,\n      autoFocusItem = false,\n      children,\n      className,\n      disabledItemsFocusable = false,\n      disableListWrap = false,\n      onKeyDown,\n      variant = 'selectedMenu'\n    } = props,\n    other = _objectWithoutPropertiesLoose(props, _excluded);\n  const listRef = React.useRef(null);\n  const textCriteriaRef = React.useRef({\n    keys: [],\n    repeating: true,\n    previousKeyMatched: true,\n    lastTime: null\n  });\n  useEnhancedEffect(() => {\n    if (autoFocus) {\n      listRef.current.focus();\n    }\n  }, [autoFocus]);\n  React.useImperativeHandle(actions, () => ({\n    adjustStyleForScrollbar: (containerElement, theme) => {\n      // Let's ignore that piece of logic if users are already overriding the width\n      // of the menu.\n      const noExplicitWidth = !listRef.current.style.width;\n      if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n        const scrollbarSize = `${getScrollbarSize(ownerDocument(containerElement))}px`;\n        listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n        listRef.current.style.width = `calc(100% + ${scrollbarSize})`;\n      }\n      return listRef.current;\n    }\n  }), []);\n  const handleKeyDown = event => {\n    const list = listRef.current;\n    const key = event.key;\n    /**\n     * @type {Element} - will always be defined since we are in a keydown handler\n     * attached to an element. A keydown event is either dispatched to the activeElement\n     * or document.body or document.documentElement. Only the first case will\n     * trigger this specific handler.\n     */\n    const currentFocus = ownerDocument(list).activeElement;\n    if (key === 'ArrowDown') {\n      // Prevent scroll of the page\n      event.preventDefault();\n      moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n    } else if (key === 'ArrowUp') {\n      event.preventDefault();\n      moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n    } else if (key === 'Home') {\n      event.preventDefault();\n      moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n    } else if (key === 'End') {\n      event.preventDefault();\n      moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n    } else if (key.length === 1) {\n      const criteria = textCriteriaRef.current;\n      const lowerKey = key.toLowerCase();\n      const currTime = performance.now();\n      if (criteria.keys.length > 0) {\n        // Reset\n        if (currTime - criteria.lastTime > 500) {\n          criteria.keys = [];\n          criteria.repeating = true;\n          criteria.previousKeyMatched = true;\n        } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n          criteria.repeating = false;\n        }\n      }\n      criteria.lastTime = currTime;\n      criteria.keys.push(lowerKey);\n      const keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n      if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n        event.preventDefault();\n      } else {\n        criteria.previousKeyMatched = false;\n      }\n    }\n    if (onKeyDown) {\n      onKeyDown(event);\n    }\n  };\n  const handleRef = useForkRef(listRef, ref);\n\n  /**\n   * the index of the item should receive focus\n   * in a `variant=\"selectedMenu\"` it's the first `selected` item\n   * otherwise it's the very first item.\n   */\n  let activeItemIndex = -1;\n  // since we inject focus related props into children we have to do a lookahead\n  // to check if there is a `selected` item. We're looking for the last `selected`\n  // item and use the first valid item as a fallback\n  React.Children.forEach(children, (child, index) => {\n    if (! /*#__PURE__*/React.isValidElement(child)) {\n      return;\n    }\n    if (process.env.NODE_ENV !== 'production') {\n      if (isFragment(child)) {\n        console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n    if (!child.props.disabled) {\n      if (variant === 'selectedMenu' && child.props.selected) {\n        activeItemIndex = index;\n      } else if (activeItemIndex === -1) {\n        activeItemIndex = index;\n      }\n    }\n  });\n  const items = React.Children.map(children, (child, index) => {\n    if (index === activeItemIndex) {\n      const newChildProps = {};\n      if (autoFocusItem) {\n        newChildProps.autoFocus = true;\n      }\n      if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n        newChildProps.tabIndex = 0;\n      }\n      return /*#__PURE__*/React.cloneElement(child, newChildProps);\n    }\n    return child;\n  });\n  return /*#__PURE__*/_jsx(List, _extends({\n    role: \"menu\",\n    ref: handleRef,\n    className: className,\n    onKeyDown: handleKeyDown,\n    tabIndex: autoFocus ? 0 : -1\n  }, other, {\n    children: items\n  }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuList.propTypes /* remove-proptypes */ = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n  /**\n   * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n   * @default false\n   */\n  autoFocus: PropTypes.bool,\n  /**\n   * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n   * if `variant=\"selectedMenu\"`.\n   * @default false\n   */\n  autoFocusItem: PropTypes.bool,\n  /**\n   * MenuList contents, normally `MenuItem`s.\n   */\n  children: PropTypes.node,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * If `true`, will allow focus on disabled items.\n   * @default false\n   */\n  disabledItemsFocusable: PropTypes.bool,\n  /**\n   * If `true`, the menu items will not wrap focus.\n   * @default false\n   */\n  disableListWrap: PropTypes.bool,\n  /**\n   * @ignore\n   */\n  onKeyDown: PropTypes.func,\n  /**\n   * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n   * and the vertical alignment relative to the anchor element.\n   * @default 'selectedMenu'\n   */\n  variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default MenuList;","map":{"version":3,"names":["_extends","_objectWithoutPropertiesLoose","_excluded","React","isFragment","PropTypes","ownerDocument","List","getScrollbarSize","useForkRef","useEnhancedEffect","jsx","_jsx","nextItem","list","item","disableListWrap","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","textCriteriaMatches","nextFocus","textCriteria","undefined","text","innerText","textContent","trim","toLowerCase","length","repeating","keys","indexOf","join","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","disabled","getAttribute","hasAttribute","focus","MenuList","forwardRef","props","ref","actions","autoFocus","autoFocusItem","children","className","onKeyDown","variant","other","listRef","useRef","textCriteriaRef","previousKeyMatched","lastTime","current","useImperativeHandle","adjustStyleForScrollbar","containerElement","theme","noExplicitWidth","style","width","clientHeight","scrollbarSize","direction","handleKeyDown","event","key","activeElement","preventDefault","criteria","lowerKey","currTime","performance","now","push","keepFocusOnCurrent","handleRef","activeItemIndex","Children","forEach","child","index","isValidElement","process","env","NODE_ENV","console","error","selected","items","map","newChildProps","tabIndex","cloneElement","role","propTypes","bool","node","string","func","oneOf"],"sources":["/data/messenger.client/node_modules/@mui/material/esm/MenuList/MenuList.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"actions\", \"autoFocus\", \"autoFocusItem\", \"children\", \"className\", \"disabledItemsFocusable\", \"disableListWrap\", \"onKeyDown\", \"variant\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport ownerDocument from '../utils/ownerDocument';\nimport List from '../List';\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport useForkRef from '../utils/useForkRef';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction nextItem(list, item, disableListWrap) {\n  if (list === item) {\n    return list.firstChild;\n  }\n  if (item && item.nextElementSibling) {\n    return item.nextElementSibling;\n  }\n  return disableListWrap ? null : list.firstChild;\n}\nfunction previousItem(list, item, disableListWrap) {\n  if (list === item) {\n    return disableListWrap ? list.firstChild : list.lastChild;\n  }\n  if (item && item.previousElementSibling) {\n    return item.previousElementSibling;\n  }\n  return disableListWrap ? null : list.lastChild;\n}\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n  if (textCriteria === undefined) {\n    return true;\n  }\n  let text = nextFocus.innerText;\n  if (text === undefined) {\n    // jsdom doesn't support innerText\n    text = nextFocus.textContent;\n  }\n  text = text.trim().toLowerCase();\n  if (text.length === 0) {\n    return false;\n  }\n  if (textCriteria.repeating) {\n    return text[0] === textCriteria.keys[0];\n  }\n  return text.indexOf(textCriteria.keys.join('')) === 0;\n}\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n  let wrappedOnce = false;\n  let nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n  while (nextFocus) {\n    // Prevent infinite loop.\n    if (nextFocus === list.firstChild) {\n      if (wrappedOnce) {\n        return false;\n      }\n      wrappedOnce = true;\n    }\n\n    // Same logic as useAutocomplete.js\n    const nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n    if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n      // Move to the next element.\n      nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n    } else {\n      nextFocus.focus();\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * A permanently displayed menu following https://www.w3.org/WAI/ARIA/apg/patterns/menubutton/.\n * It's exposed to help customization of the [`Menu`](/material-ui/api/menu/) component if you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\nconst MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n  const {\n      // private\n      // eslint-disable-next-line react/prop-types\n      actions,\n      autoFocus = false,\n      autoFocusItem = false,\n      children,\n      className,\n      disabledItemsFocusable = false,\n      disableListWrap = false,\n      onKeyDown,\n      variant = 'selectedMenu'\n    } = props,\n    other = _objectWithoutPropertiesLoose(props, _excluded);\n  const listRef = React.useRef(null);\n  const textCriteriaRef = React.useRef({\n    keys: [],\n    repeating: true,\n    previousKeyMatched: true,\n    lastTime: null\n  });\n  useEnhancedEffect(() => {\n    if (autoFocus) {\n      listRef.current.focus();\n    }\n  }, [autoFocus]);\n  React.useImperativeHandle(actions, () => ({\n    adjustStyleForScrollbar: (containerElement, theme) => {\n      // Let's ignore that piece of logic if users are already overriding the width\n      // of the menu.\n      const noExplicitWidth = !listRef.current.style.width;\n      if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n        const scrollbarSize = `${getScrollbarSize(ownerDocument(containerElement))}px`;\n        listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n        listRef.current.style.width = `calc(100% + ${scrollbarSize})`;\n      }\n      return listRef.current;\n    }\n  }), []);\n  const handleKeyDown = event => {\n    const list = listRef.current;\n    const key = event.key;\n    /**\n     * @type {Element} - will always be defined since we are in a keydown handler\n     * attached to an element. A keydown event is either dispatched to the activeElement\n     * or document.body or document.documentElement. Only the first case will\n     * trigger this specific handler.\n     */\n    const currentFocus = ownerDocument(list).activeElement;\n    if (key === 'ArrowDown') {\n      // Prevent scroll of the page\n      event.preventDefault();\n      moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n    } else if (key === 'ArrowUp') {\n      event.preventDefault();\n      moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n    } else if (key === 'Home') {\n      event.preventDefault();\n      moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n    } else if (key === 'End') {\n      event.preventDefault();\n      moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n    } else if (key.length === 1) {\n      const criteria = textCriteriaRef.current;\n      const lowerKey = key.toLowerCase();\n      const currTime = performance.now();\n      if (criteria.keys.length > 0) {\n        // Reset\n        if (currTime - criteria.lastTime > 500) {\n          criteria.keys = [];\n          criteria.repeating = true;\n          criteria.previousKeyMatched = true;\n        } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n          criteria.repeating = false;\n        }\n      }\n      criteria.lastTime = currTime;\n      criteria.keys.push(lowerKey);\n      const keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n      if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n        event.preventDefault();\n      } else {\n        criteria.previousKeyMatched = false;\n      }\n    }\n    if (onKeyDown) {\n      onKeyDown(event);\n    }\n  };\n  const handleRef = useForkRef(listRef, ref);\n\n  /**\n   * the index of the item should receive focus\n   * in a `variant=\"selectedMenu\"` it's the first `selected` item\n   * otherwise it's the very first item.\n   */\n  let activeItemIndex = -1;\n  // since we inject focus related props into children we have to do a lookahead\n  // to check if there is a `selected` item. We're looking for the last `selected`\n  // item and use the first valid item as a fallback\n  React.Children.forEach(children, (child, index) => {\n    if (! /*#__PURE__*/React.isValidElement(child)) {\n      return;\n    }\n    if (process.env.NODE_ENV !== 'production') {\n      if (isFragment(child)) {\n        console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n    if (!child.props.disabled) {\n      if (variant === 'selectedMenu' && child.props.selected) {\n        activeItemIndex = index;\n      } else if (activeItemIndex === -1) {\n        activeItemIndex = index;\n      }\n    }\n  });\n  const items = React.Children.map(children, (child, index) => {\n    if (index === activeItemIndex) {\n      const newChildProps = {};\n      if (autoFocusItem) {\n        newChildProps.autoFocus = true;\n      }\n      if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n        newChildProps.tabIndex = 0;\n      }\n      return /*#__PURE__*/React.cloneElement(child, newChildProps);\n    }\n    return child;\n  });\n  return /*#__PURE__*/_jsx(List, _extends({\n    role: \"menu\",\n    ref: handleRef,\n    className: className,\n    onKeyDown: handleKeyDown,\n    tabIndex: autoFocus ? 0 : -1\n  }, other, {\n    children: items\n  }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuList.propTypes /* remove-proptypes */ = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n  /**\n   * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n   * @default false\n   */\n  autoFocus: PropTypes.bool,\n  /**\n   * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n   * if `variant=\"selectedMenu\"`.\n   * @default false\n   */\n  autoFocusItem: PropTypes.bool,\n  /**\n   * MenuList contents, normally `MenuItem`s.\n   */\n  children: PropTypes.node,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * If `true`, will allow focus on disabled items.\n   * @default false\n   */\n  disabledItemsFocusable: PropTypes.bool,\n  /**\n   * If `true`, the menu items will not wrap focus.\n   * @default false\n   */\n  disableListWrap: PropTypes.bool,\n  /**\n   * @ignore\n   */\n  onKeyDown: PropTypes.func,\n  /**\n   * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n   * and the vertical alignment relative to the anchor element.\n   * @default 'selectedMenu'\n   */\n  variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default MenuList;"],"mappings":"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"},"metadata":{},"sourceType":"module"}